package com.ct.service;

import java.util.List;

import com.ct.entity.po.User;
import com.ct.entity.query.UserQuery;
import com.ct.entity.vo.PaginationResultVO;
import com.ct.entity.vo.UserVO;

/**
 * 用户表 业务接口
 */
public interface UserService {

    /**
     * 根据条件查询列表
     */
    List<User> findListByParam(UserQuery param);

    /**
     * 根据条件查询列表
     */
    Integer findCountByParam(UserQuery param);

    /**
     * 分页查询
     */
    PaginationResultVO<User> findListByPage(UserQuery param);

    /**
     * 新增
     */
    Integer add(User bean);

    /**
     * 批量新增
     */
    Integer addBatch(List<User> listBean);

    /**
     * 批量新增/修改
     */
    Integer addOrUpdateBatch(List<User> listBean);

    /**
     * 多条件更新
     */
    Integer updateByParam(User bean, UserQuery param);

    /**
     * 多条件删除
     */
    Integer deleteByParam(UserQuery param);

    /**
     * 根据UserId查询对象
     */
    User getUserByUserId(String userId);

    /**
     * 根据UserId修改
     */
    Integer updateUserByUserId(User bean, String userId);

    /**
     * 根据UserId删除
     */
    Integer deleteUserByUserId(String userId);

    UserVO login(String position, String userId, String password);

    List<User> getAllUsersByIdList(List<String> userIdList);
}